<?php

/**
 * This is controller search map
 */
class Map extends MX_Controller {

    function __construct() {
        parent::__construct();
        // load file layout chinh (view/layout/fronend.php)
        $this->my_layout->setLayout("layout/frontend");
        // load model map_model
        $this->load->model('map_model');
    }

    function getMarker() {
        // load library google maps
        $this->load->library('googlemaps');
        /* Lấy input select option */
        $id_type = $this->input->post('optionTypes');
        $district = $this->input->post('optionDistricts');
       
        /* Lây tất cả location ở tất cả các quận */
        if ($id_type == "all" && $district == "all") {
            $coords = $this->map_model->getAllLocations();
            $data['type_name'] = array('name_type' => "tất cả");
        }
        /* lấy tất cả location ứng với 1 quận cụ thể */ else if ($id_type == "all") {
            $coords = $this->map_model->getLocationOfDist($district);
            $data['type_name'] = array('name_type' => "tất cả");
        }
        /* lấy tất cả các quận ứng với 1 loại trung tâm */ else if ($district == "all") {
            $coords = $this->map_model->getLocationOfType($id_type);
            $data['type_name'] = $this->map_model->getNameType($id_type);
        } else {
            $data['type_name'] = $this->map_model->getNameType($id_type);
            $coords = $this->map_model->getLocationMap($id_type, $district);
        }
        echo json_encode($coords);
    }

    function index() {
        // load library google maps
        $this->load->library('googlemaps');
        /* Lấy input select option */
        $id_type = $this->input->post('optionTypes');
        $district = $this->input->post('optionDistricts');
        $tempType = array();
        $tempDist = $district;
        /* Lây tất cả location ở tất cả các quận */
        if ($id_type == "all" && $district == "all") {
            $coords = $this->map_model->getAllLocations();
            $data['type_name'] = array('name_type' => "tất cả");
        }
        /* lấy tất cả location ứng với 1 quận cụ thể */ else if ($id_type == "all") {
            $coords = $this->map_model->getLocationOfDist($district);
            $data['type_name'] = array('name_type' => "tất cả");
        }
        /* lấy tất cả các quận ứng với 1 loại trung tâm */ else if ($district == "all") {
            $coords = $this->map_model->getLocationOfType($id_type);
            $data['type_name'] = $this->map_model->getNameType($id_type);
        } else {
            $data['type_name'] = $this->map_model->getNameType($id_type);
            $coords = $this->map_model->getLocationMap($id_type, $district);
        }
        // config maps
        $config['center'] = 'auto';
        $config['zoom'] = 'auto';


        $this->googlemaps->initialize($config);
        if ($id_type && $district) {
            // loop get coordinate
            // create markers
            $temp = 0;
            foreach ($coords as $coord) {
                $link = base_url('index.php/website/center/loadById/' . $coord->id_center);
                $marker = array();
                $marker['position'] = $coord->lat . ',' . $coord->long;
                $marker['infowindow_content'] = "<img class='imageMarker' src='" . base_url($coord->url_image) . "' />" . "<span class='glyphicon glyphicon-home'>&nbsp;</span><b>" . $coord->name . "</b></br>" . "<span class='glyphicon glyphicon-flag'>&nbsp;</span></b>Đường "
                        . $coord->street . ",Phường: " . $coord->ward . ", Quận: " . $coord->district . "</b></br>"
                        . "<a href=" . $link . " >Xem thêm chi tiết</a>";
                $marker['icon'] = base_url("public/images/googlemaps/marker.png");
                $this->googlemaps->add_marker($marker);
                $temp = $temp + 1;
            }
            $data['result'] = $temp;
        }
        // create maps
        $data['district'] = $tempDist;
        $data['map'] = $this->googlemaps->create_map();
        $data['typeCenters'] = $this->map_model->getAllTypeCenter();
        $this->my_layout->view('frontend/map_view', $data);
    }

}

?>